﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x020002E1 RID: 737
	public class TForUpdate : TParseTreeNode
	{
		// Token: 0x17000576 RID: 1398
		// (set) Token: 0x06001942 RID: 6466 RVA: 0x0032BDFC File Offset: 0x00329FFC
		public virtual TDummy WaitNoWait
		{
			set
			{
				if (value == null)
				{
					return;
				}
				if (value.st1.ToString().Equals("wait", StringComparison.CurrentCultureIgnoreCase))
				{
					this.wait = true;
					this.waitValue = value.st2.ToString();
					return;
				}
				if (value.st1.ToString().Equals("nowait", StringComparison.CurrentCultureIgnoreCase))
				{
					this.nowait = true;
				}
			}
		}

		// Token: 0x17000577 RID: 1399
		// (get) Token: 0x06001944 RID: 6468 RVA: 0x0032BE66 File Offset: 0x0032A066
		// (set) Token: 0x06001943 RID: 6467 RVA: 0x0032BE5D File Offset: 0x0032A05D
		public virtual bool Wait
		{
			get
			{
				return this.wait;
			}
			set
			{
				this.wait = value;
			}
		}

		// Token: 0x17000578 RID: 1400
		// (get) Token: 0x06001946 RID: 6470 RVA: 0x0032BE77 File Offset: 0x0032A077
		// (set) Token: 0x06001945 RID: 6469 RVA: 0x0032BE6E File Offset: 0x0032A06E
		public virtual bool Nowait
		{
			get
			{
				return this.nowait;
			}
			set
			{
				this.nowait = value;
			}
		}

		// Token: 0x17000579 RID: 1401
		// (get) Token: 0x06001948 RID: 6472 RVA: 0x0032BE88 File Offset: 0x0032A088
		// (set) Token: 0x06001947 RID: 6471 RVA: 0x0032BE7F File Offset: 0x0032A07F
		public virtual string WaitValue
		{
			get
			{
				return this.waitValue;
			}
			set
			{
				this.waitValue = value;
			}
		}

		// Token: 0x1700057A RID: 1402
		// (get) Token: 0x0600194A RID: 6474 RVA: 0x0032BE99 File Offset: 0x0032A099
		// (set) Token: 0x06001949 RID: 6473 RVA: 0x0032BE90 File Offset: 0x0032A090
		public virtual TForUpdate.EForUpdateType ForUpdateType
		{
			get
			{
				return this._forUpdateType;
			}
			set
			{
				this._forUpdateType = value;
			}
		}

		// Token: 0x1700057B RID: 1403
		// (get) Token: 0x0600194B RID: 6475 RVA: 0x0032BEA1 File Offset: 0x0032A0A1
		// (set) Token: 0x0600194C RID: 6476 RVA: 0x0032BEA9 File Offset: 0x0032A0A9
		public virtual TObjectNameList ColumnRefs
		{
			get
			{
				return this.columnRefs;
			}
			set
			{
				this.columnRefs = value;
			}
		}

		// Token: 0x0600194D RID: 6477 RVA: 0x0032BEB2 File Offset: 0x0032A0B2
		public override void init(object arg1)
		{
			this.columnRefs = (TObjectNameList)arg1;
		}

		// Token: 0x0600194E RID: 6478 RVA: 0x0032BEC0 File Offset: 0x0032A0C0
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			if (this.columnRefs != null)
			{
				this.columnRefs.doParse(psql, plocation);
			}
		}

		// Token: 0x0600194F RID: 6479 RVA: 0x0032BED7 File Offset: 0x0032A0D7
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06001950 RID: 6480 RVA: 0x0032BEE7 File Offset: 0x0032A0E7
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x04001918 RID: 6424
		private bool wait;

		// Token: 0x04001919 RID: 6425
		private bool nowait;

		// Token: 0x0400191A RID: 6426
		private string waitValue;

		// Token: 0x0400191B RID: 6427
		private TForUpdate.EForUpdateType _forUpdateType;

		// Token: 0x0400191C RID: 6428
		private TObjectNameList columnRefs;

		// Token: 0x02000452 RID: 1106
		public enum EForUpdateType
		{
			// Token: 0x0400209D RID: 8349
			forUpdate,
			// Token: 0x0400209E RID: 8350
			forUpdateOf,
			// Token: 0x0400209F RID: 8351
			forReadOnly,
			// Token: 0x040020A0 RID: 8352
			forXML,
			// Token: 0x040020A1 RID: 8353
			forBrowse
		}
	}
}
